package com.netty.service;

import com.netty.model.Message;
import com.netty.model.MessageWrapper;

/**
 * @author suzhen
 * @create 2018/7/13
 */
public interface MessageService {

    /**
     * 数据包装，
     *
     * @param sessionId
     * @param message
     * @return
     */
    MessageWrapper convertToMessageWrapper(String sessionId, Message message);

    /**
     * 保存在线消息
     *
     * @param message
     */
    void saveOnlineMessageToDb(MessageWrapper message);

    /**
     * 保存离线消息
     *
     * @param message
     */
    void saveOfflineMessageToDb(MessageWrapper message);

    /**
     * 获取上线状态消息
     *
     * @param sessionId
     * @return
     */
    Message getOnLineStateMsg(String sessionId);

    /**
     * 重连状态消息
     *
     * @param sessionId
     * @return
     */
    MessageWrapper getReConnectionStateMsg(String sessionId);

    /**
     * 获取下线状态消息
     *
     * @param sessionId
     * @return
     */
    Message getOffLineStateMsg(String sessionId);
}
